package org.nuist.service.virtualmachine;

import io.swagger.models.SecurityRequirement;
import io.swagger.models.auth.In;
import org.nuist.pojo.VirtualMachine;

import java.util.List;

public interface VirtualMachineService {

    /**
     * 保存虚拟机
     * @author DYH
     * @param vm
     */
    public void save(VirtualMachine vm);

    /**
     * 删除虚拟机
     * @author DYH
     * @param vm
     */
    public void delete(VirtualMachine vm);

    /**
     * 查询全部虚拟机
     * @author DYH
     * @return
     */
    public List<VirtualMachine> findAll();

    /**
     * 根据名字查询虚拟机
     * @author DYH
     * @param id
     * @return VirtualMachine
     */
    public VirtualMachine findVirtualMachineById(Integer id);

    /**
     * 更新虚拟机
     * @author DYH
     * @param vm
     */
    public void modifyVirtualMachine(VirtualMachine vm);

    /**
     * 找到空闲的虚拟机
     * @author DYH
     * @return List
     */
    public List<VirtualMachine> findFreeVirtualMachine();

    /**
     * 根据ip找到虚拟机
     * @param port
     * @return VirtualMachine
     */
    public VirtualMachine findVirtualMachineByPort(String port);

}
